cmake_minimum_required(VERSION 3.19)  # 确定cmake最低版本需求
project(yolov5_onnx2dll_nm)  # 项目名称
set(CMAKE_BUILD_TYPE Release)  # 配置编译类型 Debug、Release  debug检测时间比release长

# CMake 标准 设置c++14
set(CMAKE_CXX_STANDARD 14)
# 如果不设置的话，则之前设置的STANDARD 14标准可能会失效。因此，其和后一条语句一般是连用的。
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 头文件搜索路径
#include_directories("yolov5_onnxruntime/")

# opencv下载后的路径,opencv编译路径
set(OpenCV_DIR G:/down/cpp/opencv-4.5.4/build/x64/vc15/lib)
# 自动寻找安装的库，把头文件和库文件添加到 ${OpenCV_INCLUDE_DIRS}、 ${OpenCV_LIBRARIES}
find_package(OpenCV REQUIRED)
# 指定库文件目录 include
include_directories(${OpenCV_INCLUDE_DIRS})

# onnxruntime set设置路径变量
set(ONNXRUNTIME_DIR G:/down/cpp/onnxruntime-win-x64-gpu-1.12.1)
# 指定库文件目录 include
include_directories(${ONNXRUNTIME_DIR}/include)

## 打印消息
#message(STATUS "ONNXRUNTIME_DIR: ${ONNXRUNTIME_DIR}")
#message(STATUS "OpenCV_DIR: ${OpenCV_DIR}")

# 编译生成exe，项目名称，需要编译的文件
#add_executable(${PROJECT_NAME} detect_file.cpp onnx_run.cpp)
#add_executable(${PROJECT_NAME} main.cpp onnx_run.cpp)

add_library(${PROJECT_NAME} SHARED onnx_run.cpp)

# 项目名称 链接OpenCV库.lib文件
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})


# windows下使用
if (WIN32)
    # 链接onnxruntime库 .lib文件
    target_link_libraries(${PROJECT_NAME} ${ONNXRUNTIME_DIR}/lib/onnxruntime.lib)
endif (WIN32)

# linux下使用
if (UNIX)
    target_link_libraries(${PROJECT_NAME} ${ONNXRUNTIME_DIR}/lib/libonnxruntime.so)
endif (UNIX)


